# 求两个数的最大公约数

# 32, 28

# 28
# 27
# 26
# .....直到找到

# 有一个数, 让这两个数一直除, 如果都能除尽 , 那么


def get_greatest_common_divisor(x, y):
    # 先得到x,y 中较小的那个数i
    i = y
    if x < y:
        i = x
        # 从大到小 对i 取模, 如果模为0 ,则证明能被整除,i 是x,y的公约数,
        # 第一个i 就是最大公约数
    while i > 0:
        if x % i == 0 and y % i == 0:
            return i
        i -= 1


# print('最大公约数:', get_greatest_common_divisor(12, 10))


def get_minimum_common_multiple(x, y):
    return x * y // get_greatest_common_divisor(x, y)


# print('最小公倍数:', get_minimum_common_multiple(10, 12))


def test3(x, y):
    # print(x, y, '的最大公约数是:', get_greatest_common_divisor(x, y))
    # print(x, y, '的最小公倍数是:', get_minimum_common_multiple(x, y))
    print('%s 和 %s 的最大公约数是 %s' % (x, y, get_greatest_common_divisor(x, y)))
    print('%s 和 %s 的最小公倍数是 %s' % (x, y, get_minimum_common_multiple(x, y)))


test3(12, 60)


def getbig(x, y):
    list1 = []
    i = y
    if x < y:
        i = x
    j = 2
    while j < i + 1:
        if x % j == 0 and y % j == 0:
            list1.append(j)
            y = y // j
            x = x // j
            j = list1[len(list1) - 1] - 1
        j += 1

    k = 1
    for i in list1:
        k *= i
    # print(list1)
    return k


import time

start = time.time()
for i in range(1000):
    # print(getbig(3333, 8888)) # 0.2184004783630371
    # print('..........')  # 0.015599966049194336
    print(get_greatest_common_divisor(3333,8888))
end = time.time()

# 0.0002

print(end - start)
